package org.mte.sak.file;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/**
 * Scrive un file testo.
 *
 * @author Marco Traversari
 * @version $Revision: 1.1 $ $Date: 2011-04-18 08:37:59 $
 */
public class TextFileWriter {

    /**
     * bufferedWriteFile
     */
	private BufferedWriter bufferedWriteFile = null;

	/**
	 * filePath
	 */
	private String filePath = null;

	/**
	 * Costruttore di default.
	 */
	public TextFileWriter() {
	}

	/**
	 * Costruttore con indicazione del file
	 *
	 * @param filePath percorso del file testo che si vuole scrivere.
	 */
	public TextFileWriter(String filePath) {
		this.filePath = filePath;
	}

	/**
	 * Apre un canale di scrittura verso il file specificato.
	 *
	 * @throws IOException se il file non � trovato o si verificano altri errori I/O.
	 */
	public void openFile() throws IOException {
		bufferedWriteFile = new BufferedWriter(new FileWriter(filePath));
	}

	/**
	 * Scrive una riga del file, iniziando dalla posizione i e per nc caratteri.
	 *
	 * @param s
	 * @param i
	 * @param nc
	 * @throws IOException
	 */
	public void write(String s, int i, int nc) throws IOException {
		bufferedWriteFile.write(s,i,nc);
	}

	/**
     * Scrive una riga del file.
	 * @param s
	 * @throws IOException
	 */
	public void write(String s) throws IOException {
		bufferedWriteFile.write(s);
	}

	/**
	 * Scrive un singolo carattere
	 * @param i
	 * @throws IOException
	 */
	public void write(int i) throws IOException {
		bufferedWriteFile.write(i);
	}

	/**
	 * Chiude il file.
	 * @throws IOException
	 */
	public void closeFile() throws IOException 	{
		bufferedWriteFile.close();
	}

}
